main(List<String> args) {
  Location l1 = Location<int>(10, 20);
  Location l2 = Location<double>(10.1, 20.1);

  List<int> nums = [1, 2, 3];
  getFirst(nums);

  List<String> num2 = ["a", "b", "c"];
  getFirst(num2);

}

T getFirst<T>(List<T> list) {
  return list[0];
}

class Location<T> {
  T x;
  T y;

  Location(this.x, this.y);
}
